package com.sanshow.charging.util;

import com.blankj.utilcode.util.StringUtils;

public class UploadDataUtil {

    // 获取包头
    public static String getPackageHeader(String data) {
        return data.substring(0, 2);
    }

    // 获取仓号
    public static String getItemCode(String data) {
        String itemCode = data.substring(2, 4);
        int i = Integer.parseInt(itemCode, 16);
        if (i < 10) {
            return "0" + i;
        } else {
            return String.valueOf(i);
        }
    }

    public static String getItemCodeHex(String data) {
        return data.substring(2, 4);
    }

    // 获取电池编号
    public static String getInfoCode(String data) {
        String itemCode = data.substring(4, 12);
        //int i = Integer.parseInt(itemInfo, 16);
        return StringUtil.formatWithMakingUp(itemCode);
    }

    // 获取信息编码
    public static String getInfoIdentity(String data) {
        String itemInfo = data.substring(12, 14);
        return itemInfo.toUpperCase();
    }

    // 获取心跳
    public static String getHeartbeat(String data) {
        String heartBeat = data.substring(14, 16);
        int i = Integer.parseInt(heartBeat, 16);
        if (i < 10) {
            return "0" + i;
        } else {
            return String.valueOf(i);
        }
    }

    // 获取门状态
    public static String getDoorStatus(String data) {
        String doorStatus = data.substring(16, 18);
        if (doorStatus.equals("a1")) {
            return "01"; // 开门
        } else if(doorStatus.equals("a2")) {
            return "00"; // 关门
        }else{
            return "02"; // 异常情况
        }
    }

    // 获取电池状态
    public static int getBatteryStatus(String data) {
        String batteryStatus = data.substring(18, 20);
        if (batteryStatus.equals("b1")) {
            return 1;
        } else {
            return 0;
        }
    }

    // 获取电压
    public static int getVoltage(String data) {
        String voltage = data.substring(20, 22);
        return Integer.parseInt(voltage,16);
    }

    // 获取电量
    public static int getElectricity(String data) {
        if(!StringUtils.isEmpty(data)){
            return Integer.parseInt(data.substring(22, 24),16);
        }
        return 0;
    }

    // 获取电流
    public static int getCurrent(String data) {
        String current = data.substring(24, 26);
        return Integer.parseInt(current,16) * 10;
    }

    // 获取温度
    public static int getTemperature(String data) {
        String temperature = data.substring(20, 22);
        return Integer.parseInt(temperature,16) - 55;
    }

    // 获取烟雾
    public static int getSmoke(String data) {
        return Integer.parseInt(data.substring(28, 30),16);
    }

    // 获取状态状态
    public static int getCharging(String data) {
        String batteryStatus = data.substring(30, 32);
        if (batteryStatus.equals("c1")) {
            return 1;
        } else {
            return 0;
        }
    }

    // 获取照明状态
    public static int getLighting(String data) {
        String batteryStatus = data.substring(32, 34);
        if (batteryStatus.equals("d1")) {
            return 1;
        } else {
            return 0;
        }
    }

    // 获取软件版本
    public static String getSoftVersion(String data) {
        return data.substring(34, 36);
    }

    // 获取包尾
    public static String getPackageTail(String data) {
        return data.substring(36, 40);
    }

    public static String getCloseDoorDataPackage(String data){
        StringBuilder sb = new StringBuilder(data);
        sb.replace(12, 14,"a2");
        return sb.toString();
    }

    public static String getNowStateDataPackage(String data){
        StringBuilder sb = new StringBuilder(data);
        sb.replace(12, 14,"a3");
        return sb.toString();
    }
}
